深入理解Java虚拟机读书笔记-java对象模型和内存参数

对象访问

reference中存储的是稳定的句柄地址,在对象被移动(垃圾收集时移动对象是非常普遍的行为)时只会改变句柄中的实例数据指针,而reference本身不需要修改。

 

 

直接指针访问方式的最大好处就是速度更快,它节省了一次指针定位的时间开销。

 

 

堆的最小值-Xms参数和最大值-Xmx参数

 

-XX:+HeapDumpOnOutOfMemoryError可以让虚拟机在出现内存溢出异常时Dump出当前的内存堆转储快照以便事后进行分析

 

栈容量由-Xss参数设定

 

如果线程请求的栈深度大于虚拟机所允许的最大深度,将抛出StackOverflowError异常。


如果虚拟机在扩展栈时无法申请到足够的内存空间,则抛出OutOfMemoryError异常。(如果是建立过多线程导致的内存溢出,在不能减少线程数或者更换64位虚拟机的情况下,就只能通过减少最大堆和减少栈容量来换取更多的线程)

 

运行时常量池是方法区的一部分。由于常量池分配在永久代内,我们可以通过-XX:PermSize和-XX:MaxPermSize限制方法区大小,从而间接限制其中常量池的容量

 

DirectMemory容量可通过-XX:MaxDirectMemorySize指定(默认与Java堆最大值-Xmx指定的一样)

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值